package com.taobao.api.domain;

import java.util.Date;
import java.util.List;

import com.taobao.api.TaobaoObject;
import com.taobao.api.internal.mapping.ApiField;
import com.taobao.api.internal.mapping.ApiListField;

/**
 * 视频
 *
 * @author auto create
 * @since 1.0, null
 */
public class VideoItem extends TaobaoObject {

  private static final long serialVersionUID = 2791195378826321786L;

  /**
   * 视频封面url
   */
  @ApiField("cover_url")
  private String            coverUrl;

  /**
   * 视频描述
   */
  @ApiField("description")
  private String            description;

  /**
   * 视频时长
   */
  @ApiField("duration")
  private Long              duration;

  /**
   * 是否允许他人观看
   */
  @ApiField("is_open_to_other")
  private Boolean           isOpenToOther;

  /**
   * 视频状态：等待转码（1），转码中（2），转码失败（3），等待审核（4），未通过审核（5），通过审核（6）
   */
  @ApiField("state")
  private Long              state;

  /**
   * 视频标签
   */
  @ApiListField("tags")
  @ApiField("string")
  private List<String>      tags;

  /**
   * 视频标题
   */
  @ApiField("title")
  private String            title;

  /**
   * 视频上传时间
   */
  @ApiField("upload_time")
  private Date              uploadTime;

  /**
   * 视频上传者数字id
   */
  @ApiField("uploader_id")
  private Long              uploaderId;

  /**
   * 视频id
   */
  @ApiField("video_id")
  private Long              videoId;

  /**
   * 视频播放地址
   */
  @ApiField("video_play_info")
  private VideoPlayInfo     videoPlayInfo;

  public String getCoverUrl() {
    return this.coverUrl;
  }

  public void setCoverUrl(String coverUrl) {
    this.coverUrl = coverUrl;
  }

  public String getDescription() {
    return this.description;
  }

  public void setDescription(String description) {
    this.description = description;
  }

  public Long getDuration() {
    return this.duration;
  }

  public void setDuration(Long duration) {
    this.duration = duration;
  }

  public Boolean getIsOpenToOther() {
    return this.isOpenToOther;
  }

  public void setIsOpenToOther(Boolean isOpenToOther) {
    this.isOpenToOther = isOpenToOther;
  }

  public Long getState() {
    return this.state;
  }

  public void setState(Long state) {
    this.state = state;
  }

  public List<String> getTags() {
    return this.tags;
  }

  public void setTags(List<String> tags) {
    this.tags = tags;
  }

  public String getTitle() {
    return this.title;
  }

  public void setTitle(String title) {
    this.title = title;
  }

  public Date getUploadTime() {
    return this.uploadTime;
  }

  public void setUploadTime(Date uploadTime) {
    this.uploadTime = uploadTime;
  }

  public Long getUploaderId() {
    return this.uploaderId;
  }

  public void setUploaderId(Long uploaderId) {
    this.uploaderId = uploaderId;
  }

  public Long getVideoId() {
    return this.videoId;
  }

  public void setVideoId(Long videoId) {
    this.videoId = videoId;
  }

  public VideoPlayInfo getVideoPlayInfo() {
    return this.videoPlayInfo;
  }

  public void setVideoPlayInfo(VideoPlayInfo videoPlayInfo) {
    this.videoPlayInfo = videoPlayInfo;
  }

}
